class Solution {
public:
    long prev = LONG_MIN;//使用一个LONG_MIN作为最小值，能够让中序的第一个点一定能大于这个值
    //然后使用prev能够去进行记录
    bool _isValidBST(TreeNode* node)
    {
        if(node == nullptr)
        {
            //如果当前访问的这个节点为空了，返回true
            return true;
        }
        if(!_isValidBST(node->left)||node->val<=prev)
        {
            //如果我这个节点的左子树不符合条件，或者是我当前的这个点小于了左子树的节点直接返回false
            return false;
        }
        //到这里说明左子树符合平衡树，并且我这个节点也是符合平衡树，那么此时我的这个节点的值就是prev了
        prev = node->val;
        return _isValidBST(node->right);//去判断右子树，右子树也是平衡就返回true
    }//这个函数的目的就是判断node这个树是否是平衡二叉树
    bool isValidBST(TreeNode* root) {
        return _isValidBST(root);//使用的是中序的思想
    }
};